package model

import (
	"gorm.io/gorm"
	"time"
)

type PersonalCenter struct {
	Id        uint32         `gorm:"column:id;type:int(20) UNSIGNED;primaryKey;not null;" json:"id"`
	Name      string         `gorm:"column:name;type:varchar(255);comment:账号;default:NULL;" json:"name"`                                       // 账号
	Username  string         `gorm:"column:username;type:varchar(255);comment:昵称;default:NULL;" json:"username"`                               // 昵称
	Brief     string         `gorm:"column:brief;type:varchar(255);comment:简介;default:NULL;" json:"brief"`                                     // 简介
	Address   string         `gorm:"column:address;type:varchar(255);comment:地址;default:NULL;" json:"address"`                                 // 地址
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 更新时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (pc *PersonalCenter) TableName() string {
	return "personal_center"
}

type Video struct {
	Id                uint32    `gorm:"column:id;type:int(20) UNSIGNED;primaryKey;not null;" json:"id"`
	Upload            int8      `gorm:"column:upload;type:tinyint(10);comment:上传方式(1.URL获取 2.本地上传);default:NULL;" json:"upload"`                                // 上传方式(1.URL获取 2.本地上传)
	MemoryAddress     int8      `gorm:"column:memory_address;type:tinyint(10);comment:存储地址(1.视频云服务器1 2.视频云服务器2 3.视频云服务器3);default:NULL;" json:"memory_address"` // 存储地址(1.视频云服务器1 2.视频云服务器2 3.视频云服务器3)
	TranscodingScheme int8      `gorm:"column:transcoding_scheme;type:tinyint(10);comment:转码方案(1.流高4超 2.不转码);default:NULL;" json:"transcoding_scheme"`          // 转码方案(1.流高4超 2.不转码)
	VideoName         string    `gorm:"column:video_name;type:varchar(255);comment:视频名称;not null;" json:"video_name"`                                           // 视频名称
	Format            string    `gorm:"column:format;type:varchar(255);comment:格式;not null;" json:"format"`                                                     // 格式
	Size              float64   `gorm:"column:size;type:decimal(10, 2);comment:大小;not null;" json:"size"`                                                       // 大小
	VideoType         string    `gorm:"column:video_type;type:varchar(255);comment:分类;default:NULL;" json:"video_type"`                                         // 分类
	CreatedAt         time.Time `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`               // 创建时间
	UpdatedAt         time.Time `gorm:"column:updated_at;type:datetime(3);comment:更新时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`               // 更新时间
	DeletedAt         time.Time `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                                        // 删除时间
}

func (v *Video) TableName() string {
	return "video"
}
